查看原文
其他

干货分享 | 国内行政区划数据的获取方法总结

GIS前沿 2019-06-30

前言:行政区划是国家为了进行分级管理而实行的区域划分,其基础性和重要性不言而喻。它既是学术科研领域常常涉及的,也为社会各界人士所感兴趣。接下来,小编将重点介绍自己总结的4类国内行政区划数据的获取方法,希望对大家的科研工作有帮助~

1

官网获取矢量数据

全国地理信息资源目录服务系统

网址:http://www.webmap.cn/main.do?method=index


全国1:100万基础地理数据覆盖全国陆地范围和包括台湾岛、海南岛、钓鱼岛、南海诸岛在内的主要岛屿及其临近海域,共77幅1:100万图幅,该数据整体现势性为2015年。数据采用2000国家大地坐标系,1985国家高程基准,经纬度坐标。

  数据内容含行政区(面),行政境界点(领海基点),行政境界(线),水系(点、线、面),公路、铁路(点、线),居民地(点、面),居民地地名(注记点),自然地名(注记点)等12类要素层。

进入网站,选择 【数据下载]】-> 【1:100万全国基础地理数据库】,即可进行查询。只有注册后的用户可以免费下载数据且不限制下载量,同时建议下载数据者仔细阅读该网站的《全国地理信息资源目录服务系统服务条款》。


2

官网获取标准地图

自然资源部(测绘地理信息)

网址:http://www.nasg.gov.cn/


进入网站,在网页最底端找到【地方测绘地理信息部门网站】,选择相应的名称即可进入其网站,见下图。也可直接百度其网址。


        以江苏省为例,进入其测绘地理信息局网站,选择【政务之窗】->【专项服务】->【标准地图服务】,见下图。即可下载所需的栅格地图。后期可以根据此图进行矢量化,就可以得到相应的矢量数据啦~



3

官网查询相关数据

全国行政区划信息查询平台

网址:http://xzqh.mca.gov.cn/map


这里小编给大家主要介绍全国行政区划信息查询平台。除该平台以外,百度地图、天地图等电子地图平台也都提供了行政区浏览的功能,不再详述。

       


       进入网站,就可以看到行政区划的电子地图,同时地图下方可以查看其属性信息,具体有地名、驻地人口、面积、行政区划代码、区号和邮编这些信息。以南京市为例,见下图。



4

地图API获取矢量数据

百度地图目前支持全国所有省市(台湾除外)的展现和poi搜索、导航服务。由于地图api的更新频率和百度官方在线地图服务更新频率一致。保持全国数据季度级更新,局部数据实时更新。目前百度地图只支持县级及其以上的行政区域的查询。建议大家调用前仔细阅读《百度地图API使用条款》。


       在此小编重新整合之前写过的代码,调用百度地图JavaScript API v1.3来介绍这种获取方法(调用其他地图接口方法类似)。

       注意:本例使用了ActiveXObject控件,这是只有IE浏览器支持创建的控件。运行代码时可能会提示“已限制ActiveX控件”,选择允许即可。


以南京市玄武区为例,在网页界面输入,查询显示结果如下图:


点击获取轮廓线即可生成政区名.txt文件(存储在D盘),输出文件内容如下图。后期可以将百度坐标转化为WGS84坐标,通过ArcGIS等软件由点生成面,然后就可以使用这份数据啦~



示例代码如下:

1<body>
2    <!--地图容器-->
3    <div id="container"></div>
4    <br />
5
6    <!--提示文字、搜索框-->
7    输入省、市或县名称:<input type="text" id="districtName" style="width:80px" value="">
8
9    <!--查询按钮-->
10    <input type="button" onclick="getBoundary()" value="获取轮廓线">
11
12    <script type="text/javascript">
13      //调用地图接口,设置地图初始中心、添加地图的平移缩放控件
14      var map = new BMap.Map("container");
15      map.centerAndZoom(new BMap.Point(118.917674, 32.109577), 5);
16      map.addControl(new BMap.NavigationControl({type: BMAP_NAVIGATION_CONTROL_SMALL}));
17      map.enableScrollWheelZoom();
18
19      //创建文件,存储行政区划边界点的坐标
20      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
21      var folderName = "D:\\";
22      if(!fso.FolderExists(folderName)) 
23      {
24        fso.CreateFolder(folderName);
25      } 
26
27      //定义查询按钮触发的函数
28      function getBoundary()
29      {
30        //bdary存储行政区域边界,name存储查询名称
31        var bdary = new BMap.Boundary();
32        var name = document.getElementById("districtName").value;
33
34        //get方法,获取行政区域的边界
35        //rs是获取到的结果
36        bdary.get(name, function(rs)
37        {
38          map.clearOverlays();
39          //存储行政区域边界的点数
40          var count = rs.boundaries.length; 
41
42          //获取到边界的点数组后,添加一个多边形覆盖物
43          for(var i = 0; i < count; i++)
44          {
45            var poly = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2.5, strokeColor: "#191970"}); 
46            map.addOverlay(poly); 
47            map.setViewport(poly.getPath());            
48          }
49
50          //将坐标写入文件,输出文件
51          var newFileObject = null;
52          newFileObject = fso.CreateTextFile(folderName + name + ".txt",true);
53          newFileObject.Write(rs.boundaries[0]+"\n");
54          newFileObject.Close();
55        });   
56      }
57    </script>
58</body>

—文章转自全国地研联

本文仅限行业学习交流之用,版权、著作权归原载平台及作者所有,如有侵权,请联系删除。


- END -


1:500、 1:1000 、1:2000地形图航空摄影测量内业规范

无人机航拍+三维扫描结合达到建模最佳化

现有测绘成果转换到2000国家大地坐标系统指南

干货视频|用手机玩转Smart3D官方教程教你做出惊艳模型

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存